package com.tedu.API.date;

import java.util.Calendar;
import java.util.Date;

/**
 * 包位置: java.util
 * Calendar抽象类: 时间类
 * 替换Date时间方法功能:
 * 1.计算时间分量: 根据毫秒数算换时间: 年  月  日  时  分  秒
 * 2.设计时间分量: 修改年月日时分秒，底层用毫秒数算的结果
 * 3.增加/减少时间分量: 增加/减少指定毫秒数
 * Calendar抽象创建:
 * Calendar cl=Calendar.getInstance();
 * Calendar.getInstance()---封装Calendar的new功能
 */
public class CalendarAPI {
    public static void main(String[] args) {
        //Calendar--格里高利历  公历   月 0~11
        Calendar cl=Calendar.getInstance();
        //get() 获取年月日时分秒【计算单位:毫秒数[静态常量---年月日时分秒]】
        //输出: 今天是: 2024 9月26   现在的时间: 9：xx:  xx
        int year=cl.get(Calendar.YEAR);   //获取年
        int month=cl.get(Calendar.MONTH)+1;  //获取月
        int date=cl.get(Calendar.DAY_OF_MONTH);  //获取月份中天【准确】
        int hour=cl.get(Calendar.HOUR);  //获取小时
        int minute= cl.get(Calendar.MINUTE);//获取分钟
        int second=cl.get(Calendar.SECOND);  //获取秒
        System.out.println("今天是: "+year+"年: "+month+"月: "
                +date+"日: " +hour+"时: "+minute+"分: "+second+"秒: ");
        //设置到明年的今天
        //set(改变的时间，绝对时间)
        cl.set(Calendar.YEAR,2025);
        Date a=cl.getTime();
        System.out.println("明年的今天: "+a);
        //add(改变的时间,相对时间)
        cl.add(Calendar.YEAR,-2);
        a=cl.getTime();
        System.out.println("减少一年的今天: "+a);
        //检查一个月最大的天数【总天数】
        int day=cl.getActualMaximum(Calendar.DAY_OF_MONTH);
        System.out.println("本月最大天数: "+day);
    }
}
